home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Business ROM with ClearVue 12-94
/
Business ROM with ClearView v12-94.iso
/
tools
/
spredsht
/
we0125
/
we0125t.txt
< prev
Wrap
Text File
|
1992-02-28
|
11KB
|
233 lines
======================================================================
Microsoft Product Support Services Application Note (Text File)
WE0125: CELL REFERENCING FROM A MACRO
======================================================================
Revision Date: 2/92
No Disk Included
The following information applies to Microsoft Excel for Windows
version 3.0.
--------------------------------------------------------------------
| INFORMATION PROVIDED IN THIS DOCUMENT AND ANY SOFTWARE THAT MAY |
| ACCOMPANY THIS DOCUMENT (collectively referred to as an |
| Application Note) IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY |
| KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO |
| THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A |
| PARTICULAR PURPOSE. The user assumes the entire risk as to the |
| accuracy and the use of this Application Note. This Application |
| Note may be copied and distributed subject to the following |
| conditions: 1) All text must be copied without modification and |
| all pages must be included; 2) If software is included, all files |
| on the disk(s) must be copied without modification [the MS-DOS(R) |
| utility DISKCOPY is appropriate for this purpose]; 3) All |
| components of this Application Note must be distributed together; |
| and 4) This Application Note may not be distributed for profit. |
| |
| Copyright 1992 Microsoft Corporation. All Rights Reserved. |
| Microsoft, MS-DOS, and the Microsoft logo are registered |
| trademarks and Windows is a trademark of Microsoft Corporation. |
--------------------------------------------------------------------
Introduction
------------
Microsoft Excel has a powerful macro language that allows you to
automate frequently performed tasks, customize functions, or create
interactive applications. Cell referencing is an essential element in
Microsoft Excel's macro language. To write a successful macro, you
must understand the different ways to reference a cell. Macro commands
take either relative or absolute references with respect to a cell, a
range of cells, or defined ranges on either a worksheet or a macro
sheet. In a macro, there are a variety of ways to refer to a cell,
depending on whether the cell you are referring to is on a macro sheet
or a worksheet and depending on which sheet is active when the macro
command is executed.
Definitions
-----------
Term Definition
---- ----------
Absolute reference A reference that is fixed. It will not adjust
itself if copied to another cell, if rows are
inserted above it, or if columns are inserted
to the left of it.
Relative reference A reference that will adjust itself if copied
to another cell, if rows are inserted above
it, or if columns are inserted to the left of
it.
Active sheet The sheet from which the macro is run or the
sheet that was last activated using the
ACTIVATE function. (For more information on
the ACTIVATE function, see page 2 of the
"Microsoft Excel Function Reference.")
Referencing style Microsoft Excel uses two different
referencing styles, A1 style referencing and
R1C1 style referencing. You can use either
style by choosing Workspace from the Options
menu and selecting the R1C1 check box for
R1C1 style referencing, or leaving the R1C1
check box clear for A1 style referencing.
A1 Style Referencing
--------------------
Syntax Description
------ -----------
$A$1 This is an absolute reference to cell A1.
A1 This is a relative reference to cell A1.
!$A$1 This is an absolute reference to cell A1 on
the ACTIVE sheet.
!A1 This is a relative reference to cell A1 on
the active sheet.
SHEET1.XLS!$A$1 This is an absolute reference to cell A1 on
SHEET1.XLS.
SHEET1.XLS!A1 This is a relative reference to cell A1 on
SHEET1.XLS
R1C1 Style Referencing
----------------------
Syntax Description
------ -----------
R1C1 This is an absolute reference to cell A1 (row
1, column 1).
R[1]C[1] This is a relative reference to the cell that
is one row below and one column to the right
of the cell in which this reference is typed.
Note: This reference is not relative to the
currently active cell.
!R1C1 This is an absolute reference to cell A1 on
the active sheet.
!R[1]C[1] This is a relative reference to the cell on
the active sheet that is one row below and
one column to the right of the cell in which
this reference is typed. Note: This reference
is not relative to the currently active cell.
SHEET1.XLS!R1C1 This is an absolute reference to cell A1 on
SHEET1.XLS.
SHEET1.XLS!R[1]C[1] This is a relative reference to the cell on
SHEET1.XLS that is one row below and one cell
to the right of the cell in which this
reference is typed.
Tips for Using the SELECT Function
----------------------------------
Most macros need to select a particular cell or a range of cells in
order to perform a certain task, whether it be to select a range of
cells so they can be copied and pasted to a new range or to select one
cell and determine what value that cell holds. The following are some
tips for selecting cells from within a macro:
- =SELECT(A1) will always attempt to select cell A1 on the macro
sheet; however, it will always result in a macro error unless
the macro sheet is the active sheet.
- =SELECT(SHEET1.XLS!$A$1) or =SELECT(SHEET1.XLS!A1) will always
attempt to select cell A1 on SHEET1.XLS; however, it will always
result in a macro error unless SHEET1.XLS is the active sheet.
- =SELECT(R1C1) is not a valid macro statement (unless you are
using the R1C1 reference style by choosing Workspace from the
Options menu and selecting the R1C1 check box). The correct form
is =SELECT("R1C1"). This statement will select cell A1 of the
currently active sheet.
- Only five functions accept references in the form "R1C1" or
"R[1]C[1]". This quoted referencing style causes delayed parsing
of the cell reference. The quotation marks hold the cell
reference in its unparsed state until the line with the quoted
reference is evaluated by executing the macro. Attempting to use
one of these referencing forms in a function that is not
designed to accept it will result in a macro error or produce
incorrect results. For example, =IF("R1C1"=100) will always
return FALSE because "R1C1" is being treated as a text string,
and the IF statement will not evaluate it.
Functions that can use absolute or relative references in the
"R1C1" or "R[1]C[1]" style are:
Function Description
-------- -----------
SELECT Can use both absolute and relative references in
this style
TEXTREF Can use absolute references only (R1C1)
INDIRECT Can use absolute references only (R1C1)
ABSREF Can use relative references only (R[1]C[1])
FORMULA Can use both absolute and relative references in
this style but ONLY in its first argument
- Activating worksheets and selecting cells can cause a macro to
run slowly. Quite often it is not actually necessary to select a
cell; instead you can use external references or the OFFSET
function to return information about a particular cell or range
of cells. For example,
use: =OFFSET(ACTIVE.CELL(),1,1)
instead of: =SELECT("R[1]C[1]")
to refer to the cell that is one row below and one column to the
right of the active cell.
Macro Debugging
---------------
- Step and Evaluate.
Microsoft Excel has a Step feature that allows you to step
through your macro line by line and evaluate your commands one
by one. This technique can be invaluable when trying to
determine why your macro is halting or not behaving as you
anticipated. To use the step feature, run your macro by choosing
Run from the Macro menu. After selecting your macro from the
list, choose the Step button. You can then either step or
evaluate the individual lines of your macro code. To evaluate a
line of code in stages, you can choose the Evaluate button
repeatedly.
- F9.
To evaluate a portion of a statement or an entire line of code
in your macro, use your mouse to select the area you want to
evaluate in the formula bar and press f9. This will immediately
evaluate the selected area. Be sure to press the esc key on the
keyboard after viewing the value, or the original formula will
be replaced with the value that is displayed in the formula bar.
- CTRL+ACCENT GRAVE.
To view the value of all statements on a macro sheet, press and
hold down the CTRL key and then press the ACCENT GRAVE key (`).
CTRL+ACCENT GRAVE is a toggle switch that puts the macro sheet
into View Values mode instead of View Formulas mode, which is
the default. Press CTRL+ACCENT GRAVE again to return the macro
sheet to View Formulas mode. An alternative way to toggle
between View Values and View Formulas is to choose Display from
the Options menu and select the Formulas check box or clear it
(when a macro sheet is active, the default is View Formulas).
More Information
----------------
For additional information on cell referencing, macro functions, and
macro writing, see the "Complete Guide to Microsoft Excel Macros" by
Charles Kyd and Chris Kinata, published by Microsoft Press.